Skip to content

Conversation

@TheByronHimes
Copy link
Member

No description provided.

@TheByronHimes TheByronHimes changed the title Commit something UCS Redux - Lynx Boreal (GSI-1685) Jun 16, 2025
@TheByronHimes TheByronHimes marked this pull request as ready for review June 16, 2025 09:08
@TheByronHimes TheByronHimes marked this pull request as draft June 17, 2025 12:56
@TheByronHimes TheByronHimes requested a review from mephenor June 17, 2025 14:27
@TheByronHimes TheByronHimes marked this pull request as ready for review June 17, 2025 14:27
@TheByronHimes TheByronHimes requested a review from mephenor June 18, 2025 11:46
mephenor
mephenor previously approved these changes Jun 18, 2025
@lkuchenb
Copy link
Member

Thanks for putting this together! Here are my thoughts:

  • We should clarify auth aspects. We are planning an intermediate state where we don't have an SRS yet (which would also have to auth somehow to UCS I guess, especially since the UCS API is public). So for the time being I suggest
    • Creation of context requires data steward role
    • State change to CLOSED and OPEN requires data steward role
    • State change to LOCKED requires an upload context specific access grant or data steward role
    • Obtaining an upload token for the upload context requires an upload context specific access grant or data steward role
  • Scrap the part where you get a fixed token when creating the upload context and instead allow dynamic retrieval of tokens per context with configurable lifetimes
  • Add a GET:/context/{id} and a GET:/contexts endpoint for inspection of existing contexts, auth again required per-context or data steward

@Cito Can you maybe chip in some thoughts on the auth aspects?

@Cito
Copy link
Member

Cito commented Jul 21, 2025

@lkuchenb My thoughts: This is very similar to what we do with the work package service for downloads, and in fact the work package schema already allows a work package type of "upload" which would be pretty much the same as an UploadContext. I think it would be good to align the terminology and methods and use it for both upload and download. The only problem is that currently work packages are based on datasets, but we can always create a complete dataset for the study. We can then also reuse the auth mechanism for work packages, i.e. long-lived work package access tokens and short-lived work order tokens for individual files.

@TheByronHimes
Copy link
Member Author

@lkuchenb @Cito following offline discussions, I have made some changes for you to review again

@TheByronHimes TheByronHimes requested a review from lkuchenb July 25, 2025 08:29
Copy link
Member

@Cito Cito left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added my two cents.

@TheByronHimes TheByronHimes requested review from Cito and lkuchenb July 28, 2025 13:22
Copy link
Member

@Cito Cito left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update, it's much clearer now.

Unfortunately, we still have some muddy parts that need clarification, see comments.

Copy link
Member

@Cito Cito left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have added a few suggestions again.

In addition to these, the epic also needs to be adapted to reflect the decision to split the UploadContext into two different domain objects: a DataUploadBox in the core domain, and a FileUploadBundle in the file domain. There is a 1:1 relationship between these, and to keep it simple they could share the same ID value.

The FileUploadBundle would live in the UCS just have the ID and an open/closed state, plus aggregated file count and size for all the files in the bundle (this is redundant since it can be calculated from the FileUpload objects).

The DataUploadBox would live in the UOS also have a title, a locked state, the sane aggregated data, maybe some more fields like "last changed" and "last changed by".

The DataUploadBox should also be replicated to the WPS (at least the title, state, and aggregated data). The user can then fetch all the necessary data to create a work package from the same WPS service, instead of needing to communicate with WPS and UOS. We do something similar with the dataset for download.

@TheByronHimes TheByronHimes requested a review from Cito August 4, 2025 11:22
Copy link
Member

@Cito Cito left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, this is really very good already. Made a few suggestions and corrections, but nothing groundbreaking.

lkuchenb
lkuchenb previously approved these changes Aug 7, 2025
Cito
Cito previously approved these changes Sep 19, 2025
@TheByronHimes TheByronHimes merged commit c27ef13 into main Sep 19, 2025
@TheByronHimes TheByronHimes deleted the feature/lynx_boreal branch September 19, 2025 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants